<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
            lterator的作用有三个:
                一是为各种数据结构，提供一个统一的、简便的访问接口;
                二是使得数据结构的成员能够按某种次序排列;
                三是 ES6创造了一种新的遍历命令for....of循环，lterator接口主要供for....of循环

            ES6规定，默认的Iterator接口部署在数据结构的Symbol.iterator属性，或者说，一个数据结构只要具有Symbol.iterator属性，就可以认为是“可遍历的”(iterable) 。Symbol.iterator属性本身是一个函数，就是当前数据结构默认的遍历器生成函数。执行这个函数，就会返回一个遍历器。


            ES6中，以下类型数据都被埋了iterator迭代器，也就是说他们都可以通过for...of遍历
                Map、Set、Array、String、arguments、Nodelist(元素选择器得到的元素列表)
        */
        let arr = [111, 222, 333];

        for (let index of arr) {
            console.log(index,arr);
        }
    </script>
</body>

</html>